package com.bjbn.service;

import com.bjbn.entity.EqptMapping;

import java.util.List;
import java.util.Map;

/**
 * 资产映射缓存服务接口
 */
public interface EqptMappingCacheService {
    
    /**
     * 初始化缓存
     */
    void initCache();
    
    /**
     * 刷新缓存
     */
    void refreshCache();
    
    /**
     * 根据设备编码获取资产映射
     * @param eqptCode 设备编码
     * @return 资产映射对象
     */
    EqptMapping getByEqptCode(String eqptCode);
    
    /**
     * 根据BMS编码获取资产映射
     * @param bmsCode BMS编码
     * @return 资产映射对象
     */
    EqptMapping getByBmsCode(String bmsCode);
    
    /**
     * 根据资产编码获取资产映射
     * @param assetCode 资产编码
     * @return 资产映射对象
     */
    EqptMapping getByAssetCode(String assetCode);
    
    /**
     * 根据BA编码获取资产映射
     * @param baCode BA编码
     * @return 资产映射对象
     */
    EqptMapping getByBaCode(String baCode);
    
    /**
     * 获取所有资产映射数据
     * @return 所有资产映射列表
     */
    List<EqptMapping> getAllMappings();
    
    /**
     * 根据资产类型获取资产映射列表
     * @param assetType 资产类型
     * @return 资产映射列表
     */
    List<EqptMapping> getByAssetType(String assetType);
    
    /**
     * 获取缓存统计信息
     * @return 缓存统计信息
     */
    Map<String, Object> getCacheStats();
}
